Задание №0 (1 балл)

Подгрузите следующие пакеты.

Задание №1 (24 балла)

Нужно спарсить одну страницу сайта ЦИАН. Запрос можно оставить как на картинке или сделать какой-то свой.

Парсим только первую страничку, поэтому не нужно писать никаких for. Выкачать нужно все цены, которые находятся на странице, привести их к числовому формату и найти среднее значение.

Решение:

Давайте возьмем следующий URL. Можете открыть его в браузере.

Загрузим html-страницу в R.

Найдем блок, который отвечат за цену. Видим, что это div и у него есть аттрибут class. Воспользуемся этим и напишем xpath. У нас будет 28 блоков, в которых лежат цены. Вытащим текст из этих блоков. В этих ценах есть непонятные символы и пробелы. Уберем их через str_replace_all. Можно было удалить с помощью функции str_remove_all. А теперь приведем все к числовому типу.

Найдем просто среднее нашего массива.

## [1] 20215368

Задание №2 (35 баллов)

С того же ЦИАНа я спарсил для вас информацию о квартирах в районе Проспекта Вернадского (Юго-запад).

В данном датасете наблюдением является квартира. Каждая квартира имеет следующие характеристики ( переменные):

Задания:

  1. Сколько наблюдений и переменных в датасете?
## Observations: 445
## Variables: 6
## $ price  <dbl> 15201900, 21120000, 15291675, 25867075, 16510000, 1562275…
## $ subway <chr> "15/walk", "2/transport", "15/walk", "2/transport", "15/w…
## $ rooms  <dbl> 2, 2, 2, 2, 2, 2, 2, 3, 1, 2, 3, 3, 1, 3, 2, 3, 3, 3, 1, …
## $ metrs  <dbl> 50.8, 76.8, 51.1, 76.7, 50.8, 50.6, 52.0, 106.1, 50.8, 78…
## $ url    <chr> "https://www.cian.ru/sale/flat/203985330/", "https://www.…
## $ type   <chr> "second", "first", "second", "first", "second", "second",…
  1. Имеются ли пропущенные значения?

  1. Постарайтесь выполнить все следующие операции с помощью pipe (%>%).
    • Удалите переменную url
    • Перевести цену квартир в миллионы рублей.
    • Разделить переменную subway на две отдельные переменные.
    • Все ли переменные имеют нужный тип (числовой, строковый)? Если нет, то приведите их к нужному формату.
  1. Постройте гистограмму распределения цены. Постройте гистограмму распределения в разрезе количества комнат.

  1. Сколько в среднем стоят квартиры в разрезе количества комнат? Сколько в среднем квадратных метров в разрезе количества комнат?
## # A tibble: 3 x 2
##   rooms price
##   <dbl> <dbl>
## 1     1  11.8
## 2     2  17.3
## 3     3  28.6
  1. Сколько новостроек, а сколько вторичек в нашем датасете?
## # A tibble: 2 x 2
##   type       n
##   <chr>  <int>
## 1 first     11
## 2 second   434

Задание №3 (40 баллов)

У вас есть два набора данных train и test. Вам нужно попробовать построить наилучшую модель для прогнозирования цены квартиры (price). Метрикой качества будет MAPE. Помните, что эта метрика качества несимметрична.

Если в качестве признака вы взяли площадь квартиры (квадратные метры), то проинтепретируйте коэффициент перед ним. А также нарисуйте график зависимости таргета от площади квартиры.

Решение:

1.

Очевидным кажется зависимость цены от площади квартиры. Попробуем нарисовать график.

Зависимость есть. Попробуем построить обычную парную регрессию.

## [1] 0.1456997
## [1] 0.150459

2.

Попробуем добавить категориальную переменную: количество комнат.

## [1] 0.1206979
## [1] 0.1417496

3.

Попробуем выкинуть выбросы.

## [1] 0.1133634
## [1] 0.1329036

Можно попробовать сделать еще что-то, но этого достаточно для полного балла.